HiLowOpenClose チャートをプログラムで作成するには、次のコードを使用します。
C# |
コードのコピー
|
---|---|
HighLowOpenCloseSeries ds = new HighLowOpenCloseSeries() { XValueBinding = new System.Windows.Data.Binding("NumberOfDay"), HighValueBinding = new System.Windows.Data.Binding("High"), LowValueBinding = new System.Windows.Data.Binding("Low"), OpenValueBinding = new System.Windows.Data.Binding("Open"), CloseValueBinding = new System.Windows.Data.Binding("Close"), SymbolStrokeThickness = 1, SymbolSize = new Size(5, 5) } ds.PlotElementLoaded += (s, e) => { PlotElement pe = (PlotElement)s; double open = (double)pe.DataPoint["OpenValues"]; double close = (double)pe.DataPoint["CloseValues"]; if (open > close) { pe.Fill = green; pe.Stroke = green; } else { pe.Fill = red; pe.Stroke = red; } }; |
たとえば、これらの値がアプリケーションからコレクションとして提供された場合は、以下のコードを使用してデータ系列を作成できます。
C# |
コードのコピー
|
---|---|
//データ系列を作成します HighLowOpenCloseSeries ds = new HighLowOpenCloseSeries(); ds.XValuesSource = dates; //日付は X 軸に置きます ds.OpenValuesSource = open; ds.CloseValuesSource = close; ds.HighValuesSource = hi; ds.LowValuesSource = lo; //系列をチャートに追加します chart.Data.Children.Add(ds); //グラフタイプを設定します chart.ChartType = isCandle ? ChartType.Candle : ChartType.HighLowOpenClose; |
別の方法として、データ連結を使用できます。たとえば、データが StockQuote オブジェクトのコレクションとしてある場合は、次のようになります。
C# |
コードのコピー
|
---|---|
public class Quote { public DateTime Date { get; set; } public double Open { get; set; } public double Close { get; set; } public double High { get; set; } public double Low { get; set; } } |
次に、データ系列を作成するコードは、次のようになります。
C# |
コードのコピー
|
---|---|
//データ系列を作成します HighLowOpenCloseSeries ds = new HighLowOpenCloseSeries(); //5つの値をすべて連結します ds.XValueBinding = new Binding("Date"); //日付は X 軸に置きます ds.OpenValueBinding = new Binding("Open"); ds.CloseValueBinding = new Binding("Close"); ds.HighValueBinding = new Binding("High"); ds.LowValueBinding = new Binding("Low"); //系列をチャートに追加します chart.Data.Children.Add(ds); //グラフタイプを設定します chart.ChartType = isCandle ? ChartType.Candle : ChartType.HighLowOpenClose; |